
// 需求：定义findChild(数据, 父编号)找到所有子
// let arr = [
//     {id:1, name: '零食', pid: 0, level: 1},
//     {id:2, name: '生活用品', pid: 0, level: 1},
//     {id:3, name: '攻城狮', pid: 0, level: 1},

//     {id:4, name: '方便面', pid: 1, level: 2},
//     {id:5, name: '汽水', pid: 1, level: 2},
//     {id:6, name: '薯条', pid: 1, level: 2},
    
//     {id:7, name: '床单', pid: 2, level: 2},
//     {id:8, name: '枕头', pid: 2, level: 2},
//     {id:9, name: '洗发水', pid: 2, level: 2},

//     {id:10, name: 'WEB大前端', pid: 3, level: 2},
//     {id:11, name: 'JAVA', pid: 3, level: 2},
//     {id:12, name: 'PYTHON', pid: 3, level: 2},
    
//     {id:13, name: 'JS变量', pid: 10, level: 3},
//     {id:14, name: 'JS判断', pid: 10, level: 3},
//     {id:15, name: 'JS循环', pid: 10, level: 3},
    
//     {id:16, name: 'JAVA变量', pid: 11, level: 3},
//     {id:17, name: 'JAVA判断', pid: 11, level: 3},
//     {id:18, name: 'JAVA循环', pid: 11, level: 3},
// ]


/**
 * 
 * @param {Array} data 后端返回的所有数据
 * @param {Number} fatherId id
 * @returns {Array}父编号下的所有子
 */
function findChild(data, fatherId)
{
    // 1 定义空数组存放所有子数据
    let son = []
    // 2 遍历数据
    data.forEach(item => { // item就是所有数据
        // 3 判断
        if (fatherId == item.pid)
        {
            son.push(item)
        }
    })

    return son
}


/**
 * 获取树形数据：传递父编号找到所有子包括孙子重孙子等
 * @params {Array} data 数据库数据处理的数据
 * @params {Number} fatherId 父编号（注：后期会根据你传递的父编号帮你找子）
 * @return {Array}
 */
 function getTree(data, fatherId)
{
    // 1 找指定数据
    let temp = findChild(data, fatherId)
    console.log(temp)
    // 2 判断
    if (temp.length <= 0)
    {
        // 找不到就终止
        return []
    } else {
        // 找到了遍历所有数据挨个找出其子
        temp.forEach(item => {
            // 判断item有没有子
            if (findChild(data, item.id).length > 0)
            {
                item.children = getTree(data, item.id)
            }
        })
    }

    return temp
}
